﻿using com.nm.Attributes;
using System;

namespace InventoryToPredictAPI.model
{
    /// <summary>
    /// title:  回货计划
    /// author: wuweihua
    /// date:   2017-12-28
    /// </summary>
    public class ReturPlan
    {
        /// <summary>
        /// 基础数据模型
        /// </summary>
        public class ReturPlanModel
        {
            /// <summary>
            /// 供应商名称
            /// </summary>
            [ParamDescription("供应商名称")]
            public string ShortName { get; set; }
            /// <summary>
            /// 订单业务编号 
            /// </summary>
            [ParamDescription("订单业务编号")]
            public string OrderBillNo { get; set; }
            /// <summary>
            /// 仓库
            /// </summary>
            [ParamDescription("仓库")]
            public string StockID { get; set; }
            /// <summary>
            /// 货品名称
            /// </summary>
            [ParamDescription("货品名称")]
            public string MaterialShortName { get; set; }
            /// <summary>
            /// 货号
            /// </summary>
            [ParamDescription("货号")]
            public string MaterialID { get; set; }
            /// <summary>
            /// 到货日期
            /// </summary>
            [ParamDescription("到货日期")]
            public DateTime? StartShipDate { get; set; }
            /// <summary>
            /// 订单数量
            /// </summary>
            public long? Qty { get; set; }
            /// <summary>
            /// 订单剩余数量 
            /// </summary>
            [ParamDescription("订单剩余数量")]
            public long? RemainQty { get; set; }
            /// <summary>
            /// 回货状态
            /// </summary>
            [ParamDescription("更新次数")]
            public long? ChangeFlag { get; set; }
            /// <summary>
            /// 更新次数
            /// </summary>
            [ParamDescription("更新次数")]
            public long? UpdateNum { get; set; }

        }

        /// <summary>
        /// 前台数据模型(增加+查询)
        /// </summary>
        public class ReturPlanVOMOdel : ReturPlanModel
        {
            /// <summary>
            /// 仓库名称
            /// </summary>
            [ParamDescription("仓库名称")]
            public string StockName { get; set; }
            /// <summary>
            /// 调整后到货日期
            /// </summary>
            [ParamDescription("调整后到货日期")]
            public DateTime? AdjustStartShipDate { get; set; }
            /// <summary>
            /// 调整后到货数量
            /// </summary>
            [ParamDescription("调整后到货日期")]
            public long? AdjustRemainQty { get; set; }
        }

        /// <summary>
        /// 前台数据模型(修改)
        /// </summary>
        public class ReturPlanVOUpdateMOdel
        {
            /// <summary>
            /// 订单业务编号 
            /// </summary>
            [ParamDescription("订单业务编号")]
            public string OrderBillNo { get; set; }

            /// <summary>
            /// 货号
            /// </summary>
            [ParamDescription("货号")]
            public string MaterialID { get; set; }
            /// <summary>
            /// 调整后到货日期
            /// </summary>
            [ParamDescription("调整后到货日期")]
            public DateTime? AdjustStartShipDate { get; set; }
            /// <summary>
            /// 调整后到货数量
            /// </summary>
            [ParamDescription("调整后到货数量")]
            public long? AdjustRemainQty { get; set; }
        }

        /// <summary>
        /// ERP数据模型
        /// </summary>
        public class ReturPlanERPModel
        {
            /// <summary>
            /// 供应商名称
            /// </summary>
            public string ShortName { get; set; }
            /// <summary>
            /// 订单业务编号 
            /// </summary>
            public string OrderBillNo { get; set; }
            /// <summary>
            /// 仓库
            /// </summary>
            public string StockID { get; set; }
            /// <summary>
            /// 货品名称
            /// </summary>
            public string MaterialShortName { get; set; }
            /// <summary>
            /// 货号
            /// </summary>
            public string MaterialID { get; set; }
            /// <summary>
            /// 到货日期
            /// </summary>
            public string StartShipDate { get; set; }
            /// <summary>
            /// 订单数量 
            /// </summary>
            public int? Qty { get; set; }
            /// <summary>
            /// 订单剩余数量 
            /// </summary>
            public int? RemainQty { get; set; }
            /// <summary>
            /// 供应商内码
            /// </summary>
            public string VendCustID { get; set; }
            /// <summary>
            /// 操作业务编号
            /// </summary>
            public string ManualBillNo { get; set; }
            /// <summary>
            /// 大类
            /// </summary>
            public string KindName { get; set; }
            /// <summary>
            /// 小类/细类
            /// </summary>
            public string ItemName { get; set; }
        }

        /// <summary>
        /// Vertica数据模型
        /// </summary>
        public class ReturPlanDBModel : ReturPlanVOMOdel
        {
            /// <summary>
            /// 产品
            /// </summary>
            public string ExtrSource { get; set; }
            /// <summary>
            /// 公司
            /// </summary>
            public string CompanyID { get; set; }
            /// <summary>
            /// 供应商内码
            /// </summary>
            public string VendCustID { get; set; }
            /// <summary>
            /// 操作业务编号
            /// </summary>
            public string ManualBillNo { get; set; }
            /// <summary>
            /// 大类
            /// </summary>
            public string KindName { get; set; }
            /// <summary>
            /// 小类/细类
            /// </summary>
            public string ItemName { get; set; }
            /// <summary>
            /// 系统保留
            /// </summary>
            public DateTime? EtlDate { get; set; }
            /// <summary>
            /// 创建时间
            /// </summary>
            public DateTime? LoadTime { get; set; }
        }

    }
}
